#include<stdio.h>
#include<string.h>
#include<stdlib.h>    //这个是getenv的头文件

//在使用environ的时候需要先声明一下
extern char **environ;    //只需要声明  不需要初始化

//注意main函数是有参数的   int argc，char *argv[]
//不仅有参数，而且最多可以有3个
//命令行参数表  和环境变量参数表  其实是父进程传递给我们的
int main(int argc,char *argv[],char *env[])
{
	(void)argc;
	(void)argv;
	(void)env;     //强转就不会报错   应用一下就不会报警和报错


//
	for(int i=0;environ[i];i++)
	{
	    printf("environ[%d]->%s\n",i,environ[i]);
	}



//测试getenv程序只能我自己修改
//	const char *who = getenv("USER");
//	if(who==NULL)
//	{
//	    return 1;
//	}
//	if(strcmp(who,"ubuntu")==0)
//	{
//	    printf("这是正常的执行逻辑！\n");
//	}
//	else
//	{
//	    printf("只有ubuntu能执行！\n");
//	}




//测试getenv
//	char *value=getenv("PATH");
//	if(value==NULL)   
//	    return 1;
//	printf("PATH->%s\n",value);



//测试env
//	for(int i=0;env[i];i++)
//	{
//	    printf("env[%d]->%s\n",i,env[i]);
//	}



//	if(argc!=2)
//	{
//	   printf("Usage:%s [-a|-b|-c]\n",argv[0]);
//	   return 1;
//	}
//
//	const char *arg = argv[1];
//	if(strcmp(arg,"-a")==0)
//	  printf("这是功能1\n");
//	else if(strcmp(arg,"-b")==0)
//	  printf("这是功能2\n“);
//	else if(strcmp(arg,"-c")==0)
//	  printf("这是功能3\n");
//	else
//	  printf("Usage: %s [-a|-b|-c]\n",argv[0]);
//












//   for(int i=0;i<argc;i++)
//   {
//	printf("argv[%d]:%s\n",i,argv[i]);
//   }

   return 0; 
}
